package config

import (
	"log"
	"os"
)

// Config 定义全局配置参数，增加了微信 AppID、AppSecret
type Config struct {
	Port       string // 服务监听端口
	GinMode    string // Gin 运行模式
	DBHost     string // 数据库地址
	DBPort     string // 数据库端口
	DBUser     string // 数据库用户名
	DBPassword string // 数据库密码
	DBName     string // 数据库名称
	JWTSecret  string // JWT 密钥
	WxAppID    string // 微信公众号 AppID
	WxSecret   string // 微信公众号 AppSecret
}

var AppConfig Config

const (
	TOKEN = "award"
)

func LoadConfig() {
	// 父亲的配置
	AppConfig = Config{
		Port:       getEnv("PORT", "8080"),
		GinMode:    getEnv("GIN_MODE", "release"),
		DBHost:     getEnv("DB_HOST", "0.0.0.0"),
		DBPort:     getEnv("DB_PORT", "3306"),
		DBUser:     getEnv("DB_USER", "root"),
		DBPassword: getEnv("DB_PASSWORD", "Aa654321"),
		DBName:     getEnv("DB_NAME", "campus_message_system"),
		JWTSecret:  getEnv("JWT_SECRET", "your-secret-key"),
		WxAppID:    getEnv("WX_APPID", "wx2ddbb662d49a23b6"),
		WxSecret:   getEnv("WX_SECRET", "30a360debb3ac7f2e1910336362303a4"),
	}

	//// 儿子的配置
	//AppConfig = Config{
	//	Port:       getEnv("PORT", "8080"),
	//	GinMode:    getEnv("GIN_MODE", "release"),
	//	DBHost:     getEnv("DB_HOST", "0.0.0.0"),
	//	DBPort:     getEnv("DB_PORT", "3306"),
	//	DBUser:     getEnv("DB_USER", "root"),
	//	DBPassword: getEnv("DB_PASSWORD", "123456"),
	//	DBName:     getEnv("DB_NAME", "campus_message_system"),
	//	JWTSecret:  getEnv("JWT_SECRET", "your-secret-key"),
	//	WxAppID:    getEnv("WX_APPID", "wx42186c02427fb78b"),
	//	WxSecret:   getEnv("WX_SECRET", "374bd426dc3c52b0f8a264c491ed41de"),
	//}

	os.Setenv("GIN_MODE", AppConfig.GinMode)
	log.Println("配置加载成功：", AppConfig)
}

func getEnv(key, defaultValue string) string {
	if value := os.Getenv(key); value != "" {
		return value
	}
	return defaultValue
}
